package br.com.negocio;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.entidade.Funcionario;
import br.com.fachada.Fachada;
import br.com.logica.Logica;
import br.com.util.Constantes;
import br.com.util.Mask;

public class AtualizarFuncionario implements Logica {

	@Override
	public void executa(HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		RequestDispatcher rd = null;

		String nome = request.getParameter("nome");
		String cpf = request.getParameter("cpf");
		String senha = request.getParameter("senha");
		String nivelDeAcesso = request.getParameter("nivel");
		String id = request.getParameter("id");

		String camposErrados = Mask.camposFuncionarioCadastro(nome,
				cpf, senha, nivelDeAcesso);

		long fID;

		if (camposErrados.equals("") && Mask.numeroPodeSerConvertido(id)) {
			try {
				fID = Long.parseLong(id);
				Funcionario f = Fachada.getInstancia().buscarFuncionarioPorId(fID);
				f.setNome(nome);
				f.setCpf(cpf);
				f.setSenha(senha);
				f.setNivelDeAcesso(Byte.parseByte(nivelDeAcesso));
				f.setStatus(Constantes.ATIVO);

				Fachada.getInstancia().atualizarFuncionario(f);
				
				rd = request.getRequestDispatcher("gerenciarFuncionario.jsp");
			} catch (Exception e) {
				e.printStackTrace();
				rd = request.getRequestDispatcher("editarFuncionario.jsp?msg=erro");
			} finally {
				rd.forward(request, response);
			}
		} else {
			rd = request.getRequestDispatcher("editarFuncionario.jsp?campos="
					+ camposErrados);
			rd.forward(request, response);
		}

		
	} 

}
